#pragma once

#include <linux/types.h>
#include <asm/page.h>
#include <linux/types/page.h>

typedef unsigned int vm_flags_t;

struct mm_struct
{
};

struct vm_area_struct
{
    union
    {
        struct
        {
            /* VMA covers [vm_start; vm_end) addresses within mm */
            unsigned long vm_start;
            unsigned long vm_end;
        };
    };

    struct mm_struct *vm_mm;

    /* Information about our backing store: */
    unsigned long vm_pgoff; /* Offset (within vm_file) in PAGE_SIZE units */

    vm_flags_t vm_flags;
    pgprot_t vm_page_prot;          /* Access permissions of this VMA. */
};

typedef int vm_fault_t;
